import time
import unittest
from common.functions import browser_operation, backhost
from page.reception.goods.update_goods_page import UpdatePage
from page.backstage.backstage_page import Backstage
from page.reception.goods.add_goods_page import AddGoodsPage

# 准备管理员账号密码
userinfo = {
    'username': 'admin',
    'password': 'admin123'
}


class UpdateTestCase(unittest.TestCase):
    # 大夹子
    @classmethod
    def setUpClass(cls) -> None:
        # 打开浏览器
        driver = browser_operation()
        # 创建UpdatePage对象
        cls.update = UpdatePage(driver)
        # 创建Backstage对象
        cls.backstage = Backstage(driver)
        # 创建AddGoodsPage对象
        cls.add = AddGoodsPage(driver)
        # 请求目标网址
        cls.update.get_website(backhost)

    # 修改商品操作
    def test_01_update_goods(self):
        # 后台登录操作
        self.backstage.implicitly_wait()
        # 点击xx
        self.backstage.click_X()
        # 点击logo
        self.backstage.backstage_login()
        # 账号密码输入
        self.backstage.input_username(userinfo['username'])
        # 密码输入
        self.backstage.input_password(userinfo['password'])
        # 点击登录按钮
        self.backstage.btn_login()

        # 切换菜单栏frame
        self.backstage.menu_frame()
        # 点击商品管理
        self.add.g_management()
        # 返回上一级frame
        self.add.change_parent_frame()
        # 切换main_frame
        self.add.min_frame()
        # 获取修改前的第一个商品名称
        delect_before = self.update.get_first_goods()

        # 点击编辑按钮
        self.update.modify()
        # 修改商品名称
        self.update.inp_goods('rrrr')
        # 修改商品分类
        self.update.classification_goods('10')
        # 修改价格
        self.update.price_goods('1999')
        # 点击确认
        self.update.btn()

        time.sleep(3)
        # 获取修改后的第一个商品名称
        delect_after = self.update.get_first_goods()

        # 断言
        self.assertNotEqual(delect_before, delect_after)

    # 后大夹子
    @classmethod
    def tearDownClass(cls) -> None:
        # 退出浏览器
        cls.update.quit()


if __name__ == '__main__':
    unittest.main(verbosity=2)
